<?php

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;

class CheckRole
{
    /**
     * 处理传入的请求
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string  $role
     * @return mixed
     */
    public function handle(Request $request, Closure $next, $role)
    {
        if (!$request->user() || !$request->user()->hasRole($role)) {
            // 如果是AJAX请求，返回JSON响应
            if ($request->ajax()) {
                return response()->json(['error' => '没有权限执行此操作'], 403);
            }
            
            // 普通请求重定向到首页
            return redirect('/')->with('error', '没有权限访问该页面');
        }

        return $next($request);
    }
} 